import axios from 'axios'

//创建axios实例
//instance 实例
const axiosInstance = axios.create({
    baseURL: 'https://api.it120.cc/small4', //拼接的路径，一般都是请求地址默认的前缀
    timeout: 3000 //请求超时的时间
})

// 添加请求拦截器
// 当实例拦截到请求后执行
axiosInstance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    if (localStorage.getItem('token')) {
        //给请求头设置token
        config.headers.token=localStorage.getItem('token')
    }
    // console.log(config);
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});
// 添加响应拦截器
axiosInstance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

//封装发送请求的函数并将其抛出，这个模块的内容基本都在这个函数内被调用了
export function request(methods, url, params) {
    //根据接收到的方法，判断以何种请求方式去请求数据
    switch (methods) {
        case 'get': //如果是get请求，就调用GET函数，并将结果返回
            return GET(url, params);
        case 'post':
            return POST(url, params)
    }
}
//GET请求的函数，调用axios实例去获取数据，不写.then而使用return会返回一个promise对象
function GET(url, params) {
    return axiosInstance.get(url, params)
}

function POST(url, params) {
    return axiosInstance.post(url, params)
}